Colab 실습 가이드
실습의 목적
코드를 외우는 것이 아니라 파일을 읽고 데이터를 정리하는 흐름을 눈으로 확인하는 것. 각 셀이 무엇을 확인하기 위한 코드인지를 이해하면 충분하다.
0. 준비: 파일 업로드
별도 제공
| 파일 | 용도 | 연결 개념 |
|---|---|---|
exam_scores.csv |
점수 표 데이터 | CSV, 자료형 변환, 평균, 조건 분류 |
scores_text.txt |
텍스트 파일 읽기 | read / readline / readlines |
air_quality_small.csv |
대기 오염 측정 데이터 | 전처리 흐름 |
station_code_map.csv |
측정소 코드표 | 코드값 → 이름 변환 |
item_code_map.csv |
측정 항목 코드표 | PM10, PM2.5 항목명 연결 |
survey_simple.csv |
설문 예시 데이터 | 항목별 비교, 막대그래프 |
security_events.csv |
보안 사례 데이터 | 피싱·악성코드·개인정보 사례 |
users_sample.json |
JSON 예시 | 속성명·속성값, 반정형 데이터 |
런타임 초기화 주의
Colab 런타임이 초기화되면 업로드한 파일이 사라진다. 새로 접속하면 다시 업로드하고, 첫 셀로 파일 목록을 확인한다.
실습 흐름 (노트북 순서)
실습 11단계 흐름:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
0. 파일 업로드 확인
1. 자료형 확인 (str vs int)
2. input() 값 (항상 문자열)
3. 파일 읽기 (read/readline/readlines)
4. strip() / split() (한 줄 → 리스트)
5. CSV 읽기 + 평균 (DictReader, int 변환)
6. pandas로 표 다루기 (필터링)
7. 전처리 (코드값 → 이름, merge)
8. 시각화 (꺾은선·막대)
9. JSON 구조 (중첩 구조 확인)
10. 보안 사례 필터링 (위험도 '높음'만)
| 단계 | 확인할 것 | 연결 단원 |
|---|---|---|
| 1 | "10"+"20" vs int("10")+int("20") |
2. 알고리즘과 프로그래밍 |
| 2 | input() 결과는 문자열 | 2. 알고리즘과 프로그래밍 |
| 3 | 읽기 방식별 결과 형태 차이 | 2. 알고리즘과 프로그래밍 |
| 4 | 줄바꿈 제거 후 쉼표로 분리 | 2. 알고리즘과 프로그래밍 |
| 5 | CSV 숫자는 문자열 → 변환 필요 | 1. 데이터 수집과 시각화 |
| 6 | 행과 열, 조건 필터링 | 1. 데이터 수집과 시각화 |
| 7 | 측정소·항목 코드를 이름으로 | 1. 데이터 수집과 시각화 |
| 8 | 시간 변화=꺾은선, 비교=막대 | 1. 데이터 수집과 시각화 |
| 9 | CSV(표) vs JSON(중첩) | 1. 데이터 수집과 시각화 |
| 10 | 사례 → 위협 분류 | 4. 정보보호와 정보보안 |
전처리 핵심 장면 (7단계)
대기 오염 데이터는 측정소·항목이 **코드(숫자)**로 들어 있다. 사람이 이해할 수 있게 이름으로 바꾸는 것이 전처리.
코드값 → 이름 변환:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
원본: 측정소코드 105, 측정항목코드 9, 평균값 58
│ merge (코드표와 연결)
↓
변환: 강동구, PM2.5, 58 ㎍/㎥
코드표:
station_code_map.csv : 105 → 강동구
item_code_map.csv : 9 → PM2.5
air2 = air.merge(station, on="측정소코드", how="left")
air2 = air2.merge(item, on="측정항목코드", how="left")
마지막 확인 질문
아래에 답할 수 있으면 실습 흐름은 충분히 잡힌 것:
input()으로 받은 값은 왜 바로 숫자 계산이 안 될까?read(),readline(),readlines()는 어떻게 다를까?strip()과split()은 각각 어떤 역할을 할까?- CSV에서 읽은 숫자는 왜
int()로 바꿔야 할까? - 측정소·측정 항목 코드를 이름으로 바꾸는 작업은 왜 전처리일까?
- 시간 변화는 어떤 그래프가 적합할까?
- JSON은 CSV와 무엇이 다를까?
그래프 한글 깨짐
Colab matplotlib는 한글 폰트가 깨질 수 있다. 실습에서는 제목·축 이름을 영어로 쓰면 안전. 핵심은 글꼴이 아니라 어떤 데이터를 어떤 그래프로 보여주는가.